1. Field of the Invention
The present invention relates to data communication between devices in a home network, and more particularly, to a gateway that enables data communication between devices having different middlewares in a home network, to a home network system, and to a data relay method
2. Description of the Related Art
In a home network such as IEEE 1394, there are various devices that have different features and middleware suitable for the different features. The middleware includes Home Audio Video Interoperability (HAVI) for audio/video devices, Universal Plug and Play (UPNP), and Jini.
FIG. 1 shows an example of the configuration of devices in a home network. As shown in FIG. 1, the home network is configured with a first device 100, a second device 110, and a third device 120.
The first device 100 includes a function module 101 for performing a unique function of the first device, a middleware module 102 (HAVI) for interpreting the data of the function module 101 in a data format that can be communicated in the home network such as IEEE 1394 or converting a command transmitted by the home network into a data format used by the function module 101, and an IEEE 1394 module 103 for receiving data from or transmitting data to the IEEE 1394 home network.
The second device 110 includes two function modules 111 and 112, two middleware modules 113 (HAVI) and 114 (UPNP), and an IEEE 1394 module 115 for being implemented as a home network and a TCP/IP module 116 for accessing other networks including the Internet.
The HAVI 113 is a middleware that connects the IEEE 1394 module 115 and the function module 111 of the second device 110. The UPNP 114 is a middleware that connects the function module 112 of the second device 110 and the TCP/IP module 116.
The third device 120 includes a function module 121, a UPNP module 122, and a TCP/IP module 123.
Since the first device 100 and the third device 120 use different middlewares, as shown in FIG. 1, they cannot interpret control messages exchanged between them. For example, if the third device 120 intends to interpret the message transmitted by the first device 100, it should have the HAVI necessary to interpret the message. This is true of the case when the third device 120 transmits a message to the first device 100. That is, because the first device 100 does not have the UPNP, it cannot interpret the message transmitted by the third device 120 Therefore, for message exchange between these devices, the home network should include devices such as the second device which has both the middleware of the first device and the middleware of the third device.
FIG. 2 shows an example of operations of the devices shown in FIG. 1
When the second device 110 intends to use the function of the first device 100, the function module 111 of the second device 110 asks the HAVI module 113 if the first device 100 is available ({circle around (1)}) The HAVI module 113 retrieves the first device 100 among the information about nodes, which is saved during a IEEE 1394 bus reset, and returns the ID of the retrieved first device 100 to the function module 111 of the second device 110 ({circle around (2)}) Upon receipt of the ID, the function module 111 of the second device 110 sends a message, which requests the first device 100 perform an operation, to the HAVI module 113 through the API of the message system defined in a HAVI specification ({circle around (3)}). The HAVI module 113 sends the message to the HAVI module 102 of the first device 100 ({circle around (4)}). The HAVI module 102 of the first device 100 interprets the request from the received message and sends the message to the function module 101 ({circle around (5)}). The function module 101 performs the requested operation ({circle around (6)}) After performing the requested operation, the first device 100 notifies the HAVI module 102 of the operation result ({circle around (7)}). The HAVI module 102 sends the result message to the HAVI module 113 of the second device 110 ({circle around (8)}). The HAVI module 113 of the second device 110 interprets the received result message and notifies the function module 111 of it ({circle around (9)}). Through the above procedure, the second device 110 (or the user of the second device) sends a desired command to the first device 100 and then receives the command execution result from the first device 100.
The operations of FIG. 2 can be supported by a second device 110 that has different middlewares. The first device 100 and the third device 120 cannot exchange data between them because each of them interprets messages in different ways. Therefore, if data is to be exchanged between devices in the home network, each device should have the middleware of the other devices, as the second device 110 has. However, even if each device in the home network has the middleware of the other devices, connecting a new device with a new middleware to the home network necessitates upgrading all the existing devices and installating the new middleware.